package org.example.basics;

public class integerCode {

    /**
     *
     * @param args
     */
    public static void main(String[] args) {

        Integer i1 = 100;
        Integer i2 = 100;
        Integer i3 = 200;
        Integer i4 = 200;

        System.out.println(i1==i2);
        System.out.println(i3==i4);
        Integer.valueOf(10);
    }

    /**
     * 从这2段代码可以看出，在通过valueOf方法创建Integer对象的时候，如果数值在[-128,127]之间，
     * 便返回指向IntegerCache.cache中已经存在的对象的引用；否则创建一个新的Integer对象。
     * 上面的代码中i1和i2的数值为100，因此会直接从cache中取已经存在的对象，所以i1和i2指向的是
     * 同一个对象，而i3和i4则是分别指向不同的对象。
     */
}
